TypeScript 部分型
「安全な範囲ならばある型の値を別の型の値として扱いたい」
ただし、リテラルの場合は、厳密な型の一致を求める
エスパーすると、後からこの呼び出し部分のコードを読んだときに関数の型を誤解する可能性があるから
ユニオン型については一般に、「任意の型T, SについてTとSはT | Sの部分型である」という命題が成り立つはずです
インターセクション....「任意の型T, Sについて、T & SはT, Sそれぞれの部分型になる」と言えるはずです
関数の部分型付け
注意してもらいたいのは、引数の部分型関係が逆転するかたちになる点です
英語だと、 subset, supersetなので、部分型も部分集合も同じ単語を使ってる?